#!/usr/bin/env bash
#-------------------------------------------------------
#	FileName	: 解析ini文件.sh
#	Author		：hpy
#	Date		：2021年11月21日
#	Description	：
#-------------------------------------------------------
 
function mhelp() {
    printf " 
NOTE:提取文件指定标记间的内容   
Usage: `basename $0` [option] filename 
Usage: cat filename | `basename $0` [option] 
    -b sring         设置识别的起始标记为 string
    -e string        设置识别的结束标记为 string
    -m               提取内容方式，设置提取的内容不包含标记行
    -h               帮助
示例:
    cat filename | `basename $0` -b "MARK1" -e "MARK2" -m
    `basename $0` -b "MARK1" -e "MARK2" filename

    <https://gitee.com/yuan_hp/page/tree/master/deepin/$(basename $0)>
\n" 
}


function getIni() {
    local b="" 
    local e=""
    local fid="" 
    # 参数解析 
        while getopts 'b:e:mh' OPT;do
        case $OPT in
            b)
                b="$OPTARG" ;;  # 开始标记
            e)
                e="$OPTARG" ;;  # 结束标记
            m)
                m="awk" ;;  # 模式
            h)   mhelp;return 0  ;;
            ?)
                mhelp
                return 2
                ;;
        esac
    done
    shift $((OPTIND-1)) #移除已经解析的参数
    fid="$*"

    # 开始解析
    sed 's/ //g' $fid | awk -F"[=#]" '{
        if( $0 ~ /^#.*/ ) next 
        
        if ($1 ~ /\[.*\]/) {
            buf=$1
            gsub(/\[/,"",buf)
            gsub(/\]/,"",buf)
            m=buf
            next
        }
        if( $0 !~ /.*=.*/ ) next  
        print m"."$1"="$2


    }'

}


#
getIni $* 